package com.think.spring;

import java.util.Locale;

import org.springframework.context.MessageSource;
import org.springframework.context.MessageSourceAware;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Service;

/**
 * @description	<pre>
 * spring消息事件
 *	</pre>
 * @author	dzy
 * @date	2016年8月18日
 */
@Service
@Lazy(false)
public class SpringMessageHolder implements MessageSourceAware{
	private static MessageSource ms;
	public void setMessageSource(MessageSource messageSource) {
		ms = messageSource;
	}
	
	/**
	 * 获取默认区域spring国际化资源
	 * @param key message的键
	 * @return　返回对应的消息
	 */
	public static String getMessage(String key){
		return ms.getMessage(key,new String[0],Locale.getDefault());
	}
	
	/**
	 * 获取默认区域spring国际化资源
	 * @param key message的键
	 * @param defaultVal 未找到时设置的默认值
	 * @return　返回对应的消息
	 */
	public static String getMessage(String key,String defaultVal){
		return ms.getMessage(key,new String[0],defaultVal,Locale.getDefault());
	}
	
	/**
	 * 获取默认区域spring国际化资源
	 * @param key message的键
	 * @param placeholder 占位值数组
	 * @return　返回对应的消息
	 */
	public static String getMessage(String key,String... placeholder){
		return ms.getMessage(key,placeholder,Locale.getDefault());
	}
	
	/**
	 * 获取默认区域spring国际化资源
	 * @param key message的键
	 * @param placeholder 占位值数组
	 * @param defaultVal 未找到时设置的默认值
	 * @return　返回对应的消息
	 */
	public static String getMessage(String key, String defaultVal, String... placeholder){
		return ms.getMessage(key,placeholder,defaultVal,Locale.getDefault());
	}
}
